deadrisingfandomcom-20200222-history
Mod:Changing Text
By modifying various files, it is possible to change the text that is displayed in game. Many of the files which contain game text are stored as binary/hexadecimal files, and a Hex Editor is highly recommended if you intend to go about editing these files. For the purposes of this guide, we'll be changing the file 'data/frontend/str_en.bcs', which can be found in your Dead Rising 2 install directory. This file contains the majority of the text encountered in the game with the language set to English, the other 'str_XX.bcs' files in this directory contain the text for other languages. The same principles here should be applicable across all language files. Important Information * All strings (words, sentences and the like) are helpfully stored in plain text, so no awkward mapping needs to be done here. * All strings are NULL separated. This means that every identifiable piece of text that game uses must end with the NULL character, 00 (in hex). How to Edit a File Using a Hex Editor # Read the manual that came with your editor! # If that hasn't made you go cross-eyed, press on. How to Edit Dead Rising 2's Text This section assumes some familiarity with your Hex Editor, and terminology frequently used in Hex Editors. When you first open 'str_en.bcs' in your Hex Editor, not much is immediately apparent. But if you scroll down to address 0x0000F2F6, you'll find one of the options found on the main menu, "START GAME". A short way above, you'll also see some of the "Tips" that get displayed on the Loading screens. But before you do anything else, make a backup of any file you intend to edit! Editing Text In Place This is the simple way to edit text, but has a major restriction, your new text must be the same length, or shorter, than the existing text. To edit the text, simply type over the top (overwrite) the text that is currently there. # Go to 0x0000F2F5. # Change the text to read "GAME START", making sure that you leave the NULL character, 00, at the end. # Save the file. # Load the game. # Observe the text on the Main Menu has changed. You can edit nearly any piece of game text in this way. Expanding the Text It is however possible, but more difficult, to change the text to say something longer than it currently does. Again, we'll use the "START GAME" text as an example. # Go to 0x0000F2F5. # Observe the text says "START GAME" and is NULL separated from the next piece of text, "JOIN CO-OP GAME" found at address 0x0000F300. # Search this file for "0000F2F5", the address of "START GAME" # This should take you to 0x0000778C, notice that this bit of information has been stored in Little Endian format, basically it's stored right-to-left, rather than left-to-right. "F5 F2 00 00", rather than "00 00 F2 F5". ## This a pointer to the piece of text we found earlier, "START GAME". This pointer tells the game where it should find the text to display. ## Notice that the next pointer, found 4 bytes later at address 0x00007790, is "00 F3 00 00" or 0x0000F300, which takes you back to "JOIN CO-OP GAME". ## Note that these pointers are not NULL separated. # Go near the bottom of the file to address 0x0005DEF0. This part of the file is essentially empty, being filled with lots of NULL characters. This makes a great place for us to put some of own text. # Type some text here, such as "LONG TEXT IS LONG", making sure to leave a NULL character after your own text. # Head back to 0x0000778C, and change this pointer to point to our new text at 0x0005DEF0. ## That is to say, replace "F5 F2 00 00" with "F0 DE 05 00". # Save the file. # Load the game. # Observe that the text on the Main Menu has changed, and that we changed the text to something that was longer than the original text. In this way it should be possible to change any text in the game, to almost anything.